package com.atguigu.gmall.search.controller;

import com.atguigu.gmall.common.bean.ResponseVo;
import com.atguigu.gmall.search.service.SearchService;
import com.atguigu.gmall.search.vo.SearchParamVO;
import com.atguigu.gmall.search.vo.SearchResponseVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;


@Controller
@RequestMapping("/")
public class SearchController {
    @Resource
    SearchService searchService;
    /*
        用户端功能：
            如果希望页面利于SEO优化，一般使用服务端渲染，客户端请求得到的页面中已经渲染过数据了
            服务端渲染：
                   后端渲染技术： servlet/jsp/thymeleaf
                        浏览器请求直接访问后端项目接口
                        后端项目查询数据 转发到页面中解析数据到页面响应
                   前端项目渲染技术：nuxt(前后端分离)

     */
    //搜索接口
    @ApiOperation("搜索")
    @GetMapping(value = {"/" , "/search"})
    public String search(SearchParamVO searchParamVO, Model model){
        SearchResponseVo searchResponseVo = searchService.seach(searchParamVO);

        model.addAttribute("response",searchResponseVo);
        model.addAttribute("searchParam",searchParamVO);
        //跳转到页面:
        // 转发：直接写资源路径+名称(数据共享  域对象 model请求域)
        // 重定向： redirect:重定向地址?xx=xxx
        return "search";
    }
}
